From 03cf19e8e27aeb5aae1af2e8f6e14cb21f13126c Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Wed, 15 Sep 2010 14:20:31 +0200 Subject: [PATCH] Create cairo context after running validate_visible_area() validate_visible_area() can change the vertical adjustment and thus trigger window moves/scrolls. This seems to change the surface for which gtk_tree_view_bin_expose() just created a cairo context. Creating the cairo context after the call to validate_visible_area() fixes such crashes. --- gtk/gtktreeview.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index f19b56459d..937aaf5097 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -4407,12 +4407,12 @@ gtk_tree_view_bin_expose (GtkWidget *widget, if (event->area.height < 0) return TRUE; + validate_visible_area (tree_view); + cr = gdk_cairo_create (event->window); gdk_cairo_region (cr, event->region); cairo_clip (cr); - validate_visible_area (tree_view); - style = gtk_widget_get_style (widget); new_y = TREE_WINDOW_Y_TO_RBTREE_Y (tree_view, event->area.y); -- 2.30.2